home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / Projects / Tutorial Material / Zone Tutorial / Structure Examples / 5. Struct3b < prev    next >
Lisp/Scheme  |  1998-10-26  |  1KB  |  52 lines

  1. ;  STRUCT3B -  structure study (melody-led)
  2.  
  3. (setq tonal (activate-tonality (dorian c 4) (pentatonic b& 3)))
  4.  
  5. (setq mel1 (vector-to-symbol a g (gen-noise-white 36 2.0 0.25)))
  6. (setq mel1a (find-change mel1))
  7. (setq mel2 (vector-to-symbol a e (gen-noise-white 48 1.0 0.54)))
  8. (setq mel2a (find-change mel2))
  9.  
  10. ; Nigel has been using tick value 96 for 1/4 note. 
  11. ; Because Nigel often mixes ticks and ratios, the function must take
  12. ; both cases into account.
  13.  
  14. (defun use-nigel-ticks (l)
  15.   (let (out)
  16.     (dolist (x l)
  17.       (if (is-length-symbol x)
  18.         (push x out)
  19.         (push (* x 5) out)))
  20.     (nreverse out)))
  21.  
  22. (setq rhy1 (use-nigel-ticks (fill-template mel1 '(24 24 48 24 24 24 24 72 24 96))))
  23. (setq rhy2 (use-nigel-ticks (fill-template mel2 '(24 48 24 48 48 24 24 24 24))))
  24.  
  25. (setq zone1 (list (make-zone rhy1)))
  26. (setq zone2 (list (make-zone rhy2)))
  27.  
  28. (setq zones (append zone1 zone2 zone1))
  29. (setq rhys (append rhy1 rhy2 rhy1))
  30. (setq mels (append mel1a mel2a mel1a))
  31.  
  32. (def-symbol
  33.    bass mels
  34. )
  35.  
  36. (def-length
  37.    bass rhys
  38. )
  39.  
  40. (def-zone
  41.    bass zones
  42. )
  43.  
  44. (def-tonality
  45.    bass tonal
  46. )
  47.  
  48. (compile-instrument-p "ccl;output:" "struct3b"
  49.    bass
  50. )
  51.  
  52.